import axios from '../config/axios.default.config'
import globalApi from '@/config/globalApi'

/**
 * 用户详情操作接口 点赞、关注、拉黑等
 */
export default class UserDetailService {
  /**
   * 点赞
   * @param data 文章数据
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static setLikes(data) {
    return axios.post(`${globalApi.likes}`, data)
  }

  /**
   * 取消点赞
   * @param blogId 文章 id
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static unLikes(blogId) {
    return axios.delete(`${globalApi.likes}/${blogId}`)
  }

  /**
   * 关注
   * @param data 用户数据
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static setAttention(data) {
    return axios.post(`${globalApi.attentions}`, data)
  }

  /**
   * 取关
   * @param userId 用户名
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static unAttention(userId) {
    return axios.delete(`${globalApi.attentions}/${userId}`)
  }

  /**
   * 拉黑
   * @param data 作者数据
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static addBlackList(data) {
    return axios.post(`${globalApi.blackList}`, data)
  }

  /**
   * 移出黑名单
   * @param userId 用户 id
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static removeBlackList(userId) {
    return axios.delete(`${globalApi.blackList}/${userId}`)
  }

  /**
   * 获取我的评论信息
   * @param args
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getMyCommented(args) {
    return axios.get(`${globalApi.getMyComment}`, { params: args })
  }

  /**
   * 获取我的关注列表
   * @param args
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getMyAttentions(args) {
    return axios.get(`${globalApi.getMyAttentions}`, { params: args })
  }

  /**
   * 获取我的粉丝列表
   * @param args
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getMyFans(args) {
    return axios.get(`${globalApi.getMyFans}`, { params: args })
  }

  /**
   * 移除粉丝
   * @param userId 用户 id
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static removeFans(userId) {
    return axios.delete(`${globalApi.fans}/${userId}`)
  }

  /**
   * 获取我的黑名单
   * @param args
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getMyBlackList(args) {
    return axios.get(`${globalApi.getMyBlackList}`, { params: args })
  }

  /**
   * 更新用户信息
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static setUserInfo(data) {
    return axios.post(`${globalApi.setUserInfo}`, data)
  }

  /**
   * 搜索用户信息
   * @param args
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getUsers(args) {
    return axios.get(`${globalApi.searchUsers}`, { params: args })
  }
}
